package com.itany.corejava.code09_异常;

/**
 * @author MissChen
 * @date 2024年03月07日 11:07
 */
public class Test03_捕获异常 {
    public static void main(String[] args) {
        test01();
    }
    // 定义一个方法test01，在该方法中出现数组下标越界、算术异常、空指针异常
    // 自己尝试来捕获并处理

    public static void test01(){
        // ctrl+alt+t
        try {
            String[] arr={"aa","bb"};
            // 数组下标越界
            // System.out.println(arr[2]);

            //算术异常
            int i=2/0;

            String name=null;
            System.out.println(name.equals("admin"));

            //由于try语句存在多种异常，每一种异常的处理方式可能不一致
            // 此时可以出现多个catch语句，要先捕获小的异常，再捕获大的异常
            // 如果先捕获大的，大的包含了多个小的异常，此时下面不生效了，会直接报错

        } catch (ArithmeticException e){
            System.out.println("算术异常");

        }catch (NullPointerException e){
            System.out.println("空指针异常");

        }catch (RuntimeException e){
            System.out.println("运行时异常");
        }
        System.out.println(22);


    }

    public static void test02(){
        // ctrl+alt+t
        try {
            String[] arr={"aa","bb"};
            // 数组下标越界
            // System.out.println(arr[2]);

            //算术异常
            int i=2/0;

            String name=null;
            System.out.println(name.equals("admin"));

            //由于try语句存在多种异常，每一种异常的处理方式可能不一致
            // 此时可以出现多个catch语句，要先捕获小的异常，再捕获大的异常
            // 如果先捕获大的，大的包含了多个小的异常，此时下面不生效了，会直接报错

        } catch (ArithmeticException  |NullPointerException  | ArrayIndexOutOfBoundsException e){
            System.out.println("捕获到了异常");

        }


    }
}
